To: cc-mode-help@merlin.cnri.reston.va.us, bug-gnu-emacs@prep.ai.mit.edu
Subject: cc-mode 4.249 as included in 19.30.2 (C); erroneous indentation
--text follows this line--

Dear Barry,

In the following syntactically valid C code i  believe cc-mode has incorrectly
indented the lines containing XXX. I obtained this buffer  by running emacs -q
and executing M-x c-mode and M-x c-set-style CC-MODE. In  each of the examples
below i expected  XXX to be one  indentation level to the  left. This is not a
simple case of indentation preference though as i can't  believe this style is
at all meaningful.

greg

----------------------------------------------------------------
foo()
{
    bar;
    switch (a) {
    case State_Equeries:
	if (pnum != hitcol)
	    baz[0] = (qux) + qux;
	    XXX;
	    XXX;
    }
    
    if ((a==b || a==b) && (a != b))
	baz[0] = (qux) + qux;
	XXX;
	XXX;
    else
	foo;
    
}
----------------------------------------------------------------

Emacs  : GNU Emacs 19.30.2 (i386-unknown-netbsd1.1, X toolkit) of Mon Jan  8 1996 on zygorthian-space-raiders
Configured using `configure  --with-x-toolkit=lucid --prefix=/mit/emacs19/install --exec-prefix=/mit/emacs19/install/arch/@sys/ --with-pop --with-hesiod --with-kerberos'
Package: cc-mode 4.249 as included in 19.30.2 (C)

c-emacs-features: (v19 1-bit)

current state:
==============
(setq
 c-basic-offset 4
 c-offsets-alist '((string . -1000)
		   (c . c-lineup-C-comments)
		   (defun-open . 0)
		   (defun-close . 0)
		   (defun-block-intro . +)
		   (class-open . 0)
		   (class-close . 0)
		   (inline-open . +)
		   (inline-close . 0)
		   (ansi-funcdecl-cont . -)
		   (knr-argdecl-intro . +)
		   (knr-argdecl . 0)
		   (topmost-intro . 0)
		   (topmost-intro-cont . 0)
		   (member-init-intro . +)
		   (member-init-cont . 0)
		   (inher-intro . +)
		   (inher-cont . c-lineup-multi-inher)
		   (block-open . 0)
		   (block-close . 0)
		   (brace-list-open . 0)
		   (brace-list-close . 0)
		   (brace-list-intro . +)
		   (brace-list-entry . 0)
		   (statement . 0)
		   (statement-cont . +)
		   (statement-block-intro . +)
		   (statement-case-intro . +)
		   (statement-case-open . 0)
		   (substatement . +)
		   (substatement-open . +)
		   (case-label . 0)
		   (access-label . -)
		   (label . 2)
		   (do-while-closure . 0)
		   (else-clause . 0)
		   (comment-intro . c-lineup-comment)
		   (arglist-intro . +)
		   (arglist-cont . 0)
		   (arglist-cont-nonempty . c-lineup-arglist)
		   (arglist-close . +)
		   (stream-op . c-lineup-streamop)
		   (inclass . +)
		   (cpp-macro . -1000)
		   (friend . 0)
		   (objc-method-intro . -1000)
		   (objc-method-args-cont . c-lineup-ObjC-method-args)
		   (objc-method-call-cont . c-lineup-ObjC-method-call)
		   )
 c-block-comments-indent-p nil
 c-cleanup-list '(scope-operator)
 c-comment-only-line-offset 0
 c-backslash-column 48
 c-delete-function 'backward-delete-char-untabify
 c-electric-pound-behavior nil
 c-hanging-braces-alist '((brace-list-open) (substatement-open after)
			  (block-close . c-snug-do-while))
 c-hanging-colons-alist nil
 c-hanging-comment-ender-p t
 c-tab-always-indent t
 c-recognize-knr-p t
 defun-prompt-regexp nil
 tab-width 8
 )
